1. Field of the Invention
The present invention relates to an information processing apparatus for acquiring document data to be printed or transmitted, and sending the acquired document data to a printing device.
2. Description of the Related Art
A user frequently executes various application programs (hereinafter, simply referred to as “applications”) such as document creating software, spreadsheet software, and image editing software with a computer, and performs printing and fax transmission. In these cases, a driver (program) is executed for controlling a printing device and a fax device on an operating system (OS) so that processes necessary for controlling the printing device and fax device are separated from the application.
Printing and fax transmission by a printer driver and a PC-FAX driver are performed by the following procedures.    1. A user displays a print setting screen from a printing menu of an application, and determines print settings.    2. The user gives an instruction to start printing to the application.
The printer driver receives, at 2., the print settings determined at 1., and converts the document data received from the application into print data that can be interpreted by the printer, based on the print settings. The printer acquires the print data and executes printing and fax transmission.
However, in the above operation sequence, it is assumed that it is not possible to change the print settings and execute printing after the user has given an instruction to start printing. Accordingly, there is proposed a technology for making it possible for the user to change the print settings after giving the instruction to start printing (see, for example, patent document 1).
(A.) For the purpose of describing the conventional technology, first, the printing architecture of Windows (registered trademark, hereinafter, “®”) is described. In the printing architecture of Windows®, commands of print settings and print start instructions from the application are reported to the GDI of OS using API. The GDI is part of the OS.
From the GDI, commands of print settings and print start instructions are reported to the printer driver and PC-FAX driver by DDI. DDI only defines I/F, and therefore the implementation method in the DDI may be freely defined by various manufactures (printer drivers and PC-FAX drivers). By implementing DDI that is called during printing, a dialog can be displayed. The name of the DDI called during printing is “DrvDocumentEvent( )”.
By using DDI, it is possible to display a dialog after the user has given a print start instruction and before sending the data to the printer. This technology is used for forcing the user to input a password each time printing is performed and to specify an address for fax transmission. In the following, specific examples are described by taking a confidential printing function installed in the printer driver and an address confirmation function installed in the PC-FAX driver as examples.
FIG. 1 illustrates a screen example of a confidential printing function of the printer driver. After the instruction to start printing, by a confidential printing function, the user is requested to input a user ID and a password. The user cannot press an OK button 501 unless the user inputs a user ID and a password. When the user inputs a user ID and a password and presses the OK button 501, the user ID and the password are transmitted to the printer. In the main unit of the printer, combinations of user IDs and passwords are registered in advance, and unless the input user ID and password match one of the combinations, the printer does not perform printing. In the confidential printing function, to further increase security, the user may be requested to input a password every time printing is performed. When the user presses a cancel button 502, printing is cancelled.
FIG. 2 illustrates a screen example of an address confirmation function of the PC-FAX driver. After the print start instruction is given, the PC-FAX driver displays a dialog illustrated in FIG. 2, and requests the user to input a fax address (fax number). In fax transmission, the address is typically different every time a fax is transmitted, and therefore the PC-FAX driver displays this screen to prevent erroneous transmission.
When the user inputs a fax number and presses a send button 503, the image data is sent to a fax device, and the fax device transmits a fax. When the user presses a cancel button 504, fax transmission is cancelled.
As mechanisms of printing with Windows®, two kinds of spool formats are used when printing with a printer driver, i.e., a RAW spool format and an EMF spool format. The RAW spool format is for performing the printing process by converting document data acquired from the application by the printer driver into RAW data that can be interpreted by the printer, in a process of the application. As viewed from the user, the application cannot be operated until the printing process is completed.
In an EMF spool format, the document data acquired from the application by the OS is converted into an EMF data format that does not depend on the printer, and the data is spooled in a process of the application. Then, the printer driver performs a printing process of converting the EMF data that has been spooled at the spooler process into RAW data that can be interpreted by the printer. As viewed form the user, when the conversion to the EMF data at the process of the application is completed, the application can be operated.
In either mechanism, as a method of implementing DDI, it is possible to display a print setting screen by displaying a dialog after printing is started.
However, the mechanism of applying the print settings changed by the user to the print data cannot be implemented only by the DDI called form the OS. The printer driver includes a UI driver for determining print settings by interactions with a user, and a render driver for converting the document data received from the application into print data in a data format that can be interpreted by the printer, based on the print settings.
The render driver operates by the system authority of the OS, and therefore displaying a dialog decreases the compatibility with respect to the OS. Thus, to change the print settings after a print start instruction is given (during printing), a dialog is displayed using DrvDocumentEvent( ) of DDI included in the UI driver. This DDI is the DDI of the UI driver that is called while the render driver is performing printing. The UI driver is operating by the same authority as the application, and therefore the compatibility with respect to the OS does not decrease.
However, the render driver and the UI driver are different modules, and cannot directly communicate with each other to exchange information. Basically, a driver is only called as a DDI from the OS.
The processing procedures for printing of Windows® are as described above, and therefore when the user wants to change the print settings by displaying a dialog after the print start instruction is given by the user and before the data is output to the printer, it is difficult to apply such changes.
In patent document 1, to solve the above problems, a method is implemented for temporarily outputting, to a file, the information that has been changed after printing has started.
(B.) Next, a description is given of the relationship between a method of installing a printer driver or a PC-FAX driver and making print settings after printing has started. For a printer driver of Windows®, there is an install method referred to as Point & Print.
FIG. 3 schematically illustrates Point & Print. A printer, a server PC, and a client PC are connected to the network. In the server PC and the client PC, an OS (OS for server in the server PC) of the Windows® is installed.
The client PC can use the server PC as a printer server to make a print request to the printer. In this kind of system, the same printer driver as that of the server PC needs to be installed in the client PC. It is highly costly to have an administrator install a printer driver in each of the client PCs in the network.
As a means for solving this problem, in Point & Print, it is possible to download and install a printer driver from the server PC in the client PC. This is a standard function of an OS in the Windows® system. When performing printing procedures by Point & Print, a RAW spool format and an EMF spool format are used.
With the printer driver that has been installed by Point & Print (in the case of EMF spool), the user can change the PC (either the client PC or the server PC) for performing the rendering process (performed by the render driver). A rendering process performed at the client PC side is referred to as “client side rendering”. A rendering process performed at the server PC side is referred to as “server side rendering”.
However, in the method of using a temporary file, depending on the timing when the printer driver is operating and the level of authority of the user, it may not be ensured that the printer driver always outputs information to the temporary file. Even if the information is output to the temporary file, in an environment where plural applications are operating, the setting may be overwritten.
FIG. 4 schematically illustrates the relationship between the plural applications and a temporary file. The applications 1 and 2 operate on the same PC, and can print document data.    (1) In response to receiving a request from the application 1, the UI driver writes settings in the temporary driver.    (2) In response to receiving a request from the application 2, the UI driver writes settings in the temporary driver.    (3) When the render driver reads settings from the temporary file in response to receiving a request from the application 1, the contents of the temporarily file have changed.
In order to solve the above problem, the print settings are not saved in the temporary file, and instead, the print settings are saved in a print setting saving module.
However, even by the above method, there are two cases where the problems cannot be solved.    Regarding (A.): a case of a printing sequence in EMF spool    Regarding (B.): a case of a printing sequence by a printer driver in which Point & Print is installedRegarding (A.)
The method of using a print setting saving module uses a DDI call sequence when printing, which can be implemented at the time of RAW spool. However, in a different spool format, the DDI call sequence called from the OS changes. In EMF spool, there is a process of converting document data from the application into EMF data, and a process of converting EMF data into render data that can be interpreted by the printer. Therefore, as an operation inside the OS, two print processing sequences are operated. As a result, the DDI call sequence becomes more complex than RAW spool, and therefore the print settings cannot be passed over at a desired timing.
Regarding (B.)
The method of using a print setting saving module can be implemented in a local environment, where a printer driver is installed in the PC used by the user. However, with the install format of Point & Print, the UI driver and the render driver can operate at different locations by user settings (server side rendering).
In client side rendering, the UI driver and the render driver both operate on the client PC side. However, in server side rendering, the UI driver operates on the client PC side and the render driver operates on the server PC side. In server side rendering, the operating PCs are physically different PCs, and therefore the print setting saving module is only present in the client side PC. In this case, the render driver of the server cannot acquire print settings from the print setting saving module.
FIG. 5 illustrates a list of cases where the print settings cannot be changed after printing has started. As described above, in a case where the install environment is local and the spool format is EMF spool, and in a case where the install environment is Point & Print, the spool format is EMF spool, and the rendering location is the server, it is difficult to change the print settings after printing has started.
Patent Document 1: Japanese Laid-Open Patent Publication No. 2010-066876